#!/opt/anaconda3/bin/python
# -*- coding:utf-8 -*-
'''
@project : meiduo_mall
@author  : leftxxk
#@file   : search_indexes.py
#@time   : 2021-06-09 21:11:40
'''
from haystack import indexes

from apps.goods.models import SKU

'''
1。我们必须在模型对应的目录下创建search_indexes.py文件  方便haystack进行检索数据
2。索引类必须继承自 indexes.SearchIndex, indexes.Indexable
3。必须定义一个字段document=True  名字随便起  但是所有索引类的要保持一致
4。use_template=True 
    允许单独设置一个文件 进行检索
    
    这个单独的文件  
        模版文件夹/search/indexes/子应用名目录/模型类名（小写）_text.text
'''


class SKUIndex(indexes.SearchIndex, indexes.Indexable):
    """SKU索引数据模型类"""
    '''
    每个SearchIndex都需要一个（并且只有一个）字段，其中包含document=True。
    这向Haystack和搜索引擎表明哪个字段是内部搜索的主要字段。
    '''
    text = indexes.CharField(document=True, use_template=True)

    def get_model(self):
        """返回建立索引的模型类"""
        return SKU

    def index_queryset(self, using=None):
        """返回要建立索引的数据查询集"""
        return self.get_model().objects.all()
